Non-intrusive Repair of Safety and Liveness Violations in Reactive Programs
نویسندگان
چکیده
We show how, under certain conditions, programs written in the behavioral programming approach can be modified (e.g., as a result of new requirements or discovered bugs) using automatically-generated code modules. Given a trace of undesired behavior, one can generate a relatively small piece of code, whose execution is interwoven at run time with the rest of the system, and which brings about the desired changes without modifying existing code and without introducing new bugs. At the core of our approach is the ability of a thread of behavior to prevent the triggering of events from other threads. Our repair algorithms apply model checking of safety and liveness properties to the program and transform the counterexamples produced by the model-checker into corrective modules. The work is supported by a proof-of-concept tool, which creates understandable modules that can be further manually managed as part of a process of ongoing incremental system development.
منابع مشابه
Optimizing Computation of Recovery Plans for BPEL Applications
Web service applications are distributed processes that are composed of dynamically bounded services. In our previous work [15], we have described a framework for performing runtime monitoring of web service against behavioural correctness properties (described using property patterns and converted into finite state automata). These specify forbidden behavior (safety properties) and desired beh...
متن کاملModel-checking and Game Theory for the Synthesis of Safety Rules
Ensuring that safety requirements are respected is a critical issue for the deployment of hazardous and complex reactive systems. We consider a separate safety channel, called a monitor, that is able to partially observe the system and to trigger safety-ensuring actuations. We address the issue of correctly specifying such a monitor with respect to safety and liveness requirements. Two safety r...
متن کاملSoftware Model Checking of Liveness Properties via Transition Invariants
Model checking is an automated method to prove safety and liveness properties for finite systems. Software model checking uses predicate abstraction to compute invariants and thus prove safety properties for infinite-state programs. We address the limitation of current software model checking methods to safety properties. Our results are a characterization of the validity of a liveness property...
متن کاملA Specification and Verification Method for Preventing Denial of Service
-In this paper, we present a specification and verification method for preventing denial of service in absence of failures and of integrity violations. We introduce the notion of “user agreements” and argue that lack of specifications for these arguments and for simultaneity conditions makes it impossible to demonstrate denial-of-service prevention, in spite of demonstrably fair service access....
متن کاملVerifying Temporal Properties of Reactive Systems by Transformation
We show how program transformation techniques can be used for the verification of both safety and liveness properties of reactive systems. In particular, we show how the program transformation technique distillation can be used to transform reactive systems specified in a functional language into a simplified form that can subsequently be analysed to verify temporal properties of the systems. E...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Trans. Computational Collective Intelligence
دوره 16 شماره
صفحات -
تاریخ انتشار 2014